/*
 * 文件名：CouponDetailDao.java
 * 版权：Copyright by www.huawei.com
 * 描述：
 * 修改人：hry
 * 修改时间：2016年4月26日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.zcsy.manage.persistence.mall;

import java.util.List;
import java.util.Map;

import com.zcsy.manage.model.mall.CouponDetail;
import com.zcsy.manage.model.mall.vo.CouponInfoDetailVo;

/**
 * 
 * @Title: CouponDetailDao.java
 * @Package： com.zcsy.manage.persistence.mall 
 * @Description: 优惠券详情信息Dao层接口
 *
 * @author lilan 1063972142@qq.com
 * @Copyright: 2015 武汉恒数利通信息技术有限公司 All rights reserved.
 * @date 2016年4月26日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */
public interface CouponDetailDao {
	
	/**
	 * 
	 * @Description 插入优惠券详情信息<br>
	 * 
	 * @param couponDetail 优惠券详情对象
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月26日
	 * @see
	 */
	int insert(CouponDetail couponDetail);
	
	/**
	 * 
	 * @Description 更新优惠券详情对象<br>
	 * 
	 * @param couponDetail 优惠券详情对象
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月26日
	 * @see
	 */
	int update(CouponDetail couponDetail);
	
	/**
	 * 
	 * @Description 根据主键ID删除优惠券详情信息<br>
	 * 
	 * @param id 主键ID
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月26日
	 * @see
	 */
	int deleteByPrimaryKey(String id);
	
	/**
	 * 
	 * @Description 根据主键ID获取优惠券详情信息<br>
	 * 
	 * @param id 主键ID
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月26日
	 * @see
	 */
	CouponDetail selectByPrimaryKey(String id);
	
	/**
	 * 
	 * @Description 根据关键字获取优惠券详情信息列表<br>
	 * 
	 * @param couponDetail 优惠券详情对象
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月26日
	 * @see
	 */
	List<CouponDetail> selectByKeyword(CouponDetail couponDetail);
	
	/**
	 * 
	 * @Description 根据关键字获取优惠券详情信息列表<br>
	 * 
	 * @param couponDetail 优惠券详情对象
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年6月1日
	 * @see
	 */
	List<CouponDetail> selectDetailByKeyword(CouponDetail couponDetail);
	
	/**
	 * 
	 * @Description 根据优惠券ID获取优惠券详情列表<br>
	 * 
	 * @param couponid 优惠券ID
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月26日
	 * @see
	 */
	CouponDetail selectByCouponId(String couponid);

	/**
     * 
     * @Description 根据userAccount和优惠券状态获取优惠券信息列表<br>
     * 
     * @param couponInfo
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年6月30日
     * @see
     */ 
    List<CouponDetail> selectByUserAccountAndState(CouponDetail couponDetail);
    
    /**
     * @Method: getCouponUsedList
     * @Description  获取优惠券领用使用列表
     * @param map
     * @return 
     * @author liuziyu liuziyuwri@foxmail.com
     * @date 2016年7月22日
     * @see 
     */
    List<CouponDetail> getCouponUsedList(Map<String, Object> map);

    /**
     * @Method: selectCouponDetailByKeyword
     * @Description  根据关键字查询couponDetail
     * @param CouponDetail
     * @return List<CouponDetail>
     * @author yangfan 373188993@qq.com
     * @date 2016年8月9日
     * @see 
     */
    List<CouponDetail> selectCouponDetailByKeyword(CouponDetail couponDetail);
    
    /**
     * 获取当前用户可用优惠券
     * @Method: getAvaliabelCoupon
     * @param shopIds 店铺id，多个id以","隔开
     * @param userAccount 用户账号
     * @author hubing
     * @date 2016年8月10日
     */
    List<CouponInfoDetailVo> getAvaliabelCoupon(Map<String, Object> map);
    
    /**
     * 
     * @Description 根据优惠券ID获取已领取优惠券张数<br>
     * 
     * @param couponid 优惠券ID
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年8月19日
     * @see
     */
    CouponDetail getCountNumerBycouponId(String couponId);
    
    /**
     * 
     * @Description 根据用户名获取已使用，未使用，已过期优惠券张数<br>
     * 
     * @param userAccount 帐号
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年8月26日
     * @see
     */
    CouponDetail getCouponDetailCount(String userAccount);

    /**
     * @Description 根据用户名和优惠券id获取优惠券详情信息<br>
     * @param loginname 帐号 couponId优惠券id
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年8月26日
     * @see
     */
    CouponDetail selectByUserAccountAndCouponId(Map<String, String> map);
}
